package com.zhentao.datacontrol.domain.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.time.LocalDateTime;

@TableName("dc_parameter_table")
public class ParameterTable {

    @TableId(type = IdType.AUTO)
    private Long id;

    private String tableCode;
    private String tableName;
    private String tableType; // CORRECTION_CODE, BASIC_PARAM
    private String tableDescription;

    // 表结构信息
    private String tableSchema; // JSON格式
    private String keyFields;
    private String valueFields;

    private String status; // ACTIVE, INACTIVE

    @TableLogic
    private Integer isDelete;

    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    // 非数据库字段
    @TableField(exist = false)
    private String tableTypeText;

    @TableField(exist = false)
    private String statusText;

    // Getters and Setters
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public String getTableCode() { return tableCode; }
    public void setTableCode(String tableCode) { this.tableCode = tableCode; }

    public String getTableName() { return tableName; }
    public void setTableName(String tableName) { this.tableName = tableName; }

    public String getTableType() { return tableType; }
    public void setTableType(String tableType) { this.tableType = tableType; }

    public String getTableDescription() { return tableDescription; }
    public void setTableDescription(String tableDescription) { this.tableDescription = tableDescription; }

    public String getTableSchema() { return tableSchema; }
    public void setTableSchema(String tableSchema) { this.tableSchema = tableSchema; }

    public String getKeyFields() { return keyFields; }
    public void setKeyFields(String keyFields) { this.keyFields = keyFields; }

    public String getValueFields() { return valueFields; }
    public void setValueFields(String valueFields) { this.valueFields = valueFields; }

    public String getStatus() { return status; }
    public void setStatus(String status) { this.status = status; }

    public Integer getIsDelete() { return isDelete; }
    public void setIsDelete(Integer isDelete) { this.isDelete = isDelete; }

    public LocalDateTime getCreatedTime() { return createdTime; }
    public void setCreatedTime(LocalDateTime createdTime) { this.createdTime = createdTime; }

    public LocalDateTime getUpdatedTime() { return updatedTime; }
    public void setUpdatedTime(LocalDateTime updatedTime) { this.updatedTime = updatedTime; }

    public String getTableTypeText() { return tableTypeText; }
    public void setTableTypeText(String tableTypeText) { this.tableTypeText = tableTypeText; }

    public String getStatusText() { return statusText; }
    public void setStatusText(String statusText) { this.statusText = statusText; }
}
